package co.edu.usbcali.modeloo;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Empresa entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "empresa", catalog = "estimacionpreliminar")
public class Empresa implements java.io.Serializable {

	// Fields

	private Integer id;
	private Usuarios usuarios;
	private String nombreempresa;
	private Set<Proyectos> proyectoses = new HashSet<Proyectos>(0);

	// Constructors

	/** default constructor */
	public Empresa() {
	}

	/** minimal constructor */
	public Empresa(Integer id) {
		this.id = id;
	}

	/** full constructor */
	public Empresa(Integer id, Usuarios usuarios, String nombreempresa,
			Set<Proyectos> proyectoses) {
		this.id = id;
		this.usuarios = usuarios;
		this.nombreempresa = nombreempresa;
		this.proyectoses = proyectoses;
	}

	// Property accessors
	@Id
	@Column(name = "ID", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "IDUSUARIO")
	public Usuarios getUsuarios() {
		return this.usuarios;
	}

	public void setUsuarios(Usuarios usuarios) {
		this.usuarios = usuarios;
	}

	@Column(name = "NOMBREEMPRESA", length = 50)
	public String getNombreempresa() {
		return this.nombreempresa;
	}

	public void setNombreempresa(String nombreempresa) {
		this.nombreempresa = nombreempresa;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "empresa")
	public Set<Proyectos> getProyectoses() {
		return this.proyectoses;
	}

	public void setProyectoses(Set<Proyectos> proyectoses) {
		this.proyectoses = proyectoses;
	}

}